System and Method of Data Communication

ABSTRACT

Particular embodiments may receive a request to perform a task to a core network by a user device via an access point. The user device may be authenticated by the core network which comprises one or more network functionality components, and each of the one or more network functionality components may be decomposed into multiple service types. The core network may identify service instances for deployment based on the task. Each of the service instances may belong to one of the multiple decomposed service types. The service instances may be deployed to one or more server machines to accomplish the task by the core network based on resource requirements of the service instances and current resource availability of the one or more server machines.

PRIORITY

This application is a continuation under 35 U.S.C. § 120 of U.S. patentapplication Ser. No. 16/865,196, filed 1 May 2020, which is acontinuation under 35 U.S.C. § 120 of U.S. patent application Ser. No.16/237,328, filed 31 Dec. 2018, each of which is incorporated herein byreference.

TECHNICAL FIELD

This disclosure generally relates to network architecture, and inparticular to systems and methods for a core network architecture.

BACKGROUND

Mobile data communications are growing quickly because of globalcommunication networks and devices such as the internet, intranets,mobile computing devices, and increased requirements of workforcemobility. A mobile computing device, such as a smartphone, tabletcomputer, or laptop computer, may include functionality for wirelesscommunication, such as BLUETOOTH communication, near-field communication(NFC), infrared (IR) communication, communication with a wireless localarea networks (WLANs), or cellular-telephone network.

Data communication networks including but not limited to generations ofwireless or mobile data communication networks may provide acomprehensive and secure network communication solution with much fasterdata speeds than a previous generation thereof. The traffic demand in acore mobile data network has increased dramatically in the past fewyears and is expected to grow even faster. A core network is the corepart of the data communication network, which offers numerous servicesto the users who are interconnected by accessing the network. The corenetwork delivers routes to exchange information among varioussub-networks. When it comes to enterprise networks that serve a singleorganization, the term backbone is often used instead of core network,whereas when used with service providers the term core network isprominent. To extend the mobile data communication and to meet theincremental data rates and capacity demands, network infrastructures areexpanded rapidly and globally.

SUMMARY OF PARTICULAR EMBODIMENTS

To provide quality internet service to unconnected residences around theglobe, network infrastructures are required to build globally forestablishing mobile data communications connecting the residences. Thenetwork infrastructures may comprise hardware and software resourcesthat enable network connectivity, communication, operations andmanagement of an enterprise or public network. The networkinfrastructures may provide the communication path and services betweenusers, processes, applications, services, and external networks (e.g.,social networking system). As the internet access grows rapidly, highaggregated user data-rates may be required for large volumes of datacommunication on the network, such as a wired, wireless, or satellitenetwork. The network infrastructures with respective capacities may beimplemented to meet the demand of large volumes of data communication onthe network. However, such fixed capacity infrastructures may not beflexible to handle the rapidly changed data volumes. For example, whilethe capacity of the infrastructure may be fully utilized for the peakload, it may be wasted when the network load is light. Further, thefixed capacity infrastructures may not be optimized with respect to thenetwork update easily (e.g., it may comprise functionalities that arenot necessary for the current network or may not comprisefunctionalities that are needed for the current network.)

The embodiments described herein provide a system and a method of a datacommunication architecture that enables flexible and scalable servicedeployments of a network, such as a wired, wireless, or satellitenetwork. Specifically, the data communication architecture isservice-oriented architecture and directed to services deployment of acore network, especially in a sparsely populated area. The networkcapacity may be easily adjusted (e.g., scaled up or scaled down) withrespect to the network load changes. Furthermore, introducing newfunctionalities (e.g., specific functionalities for specific providersor applications) may be accomplished with minimum efforts or cost. Thus,the service-oriented network architecture may be introduced to achievethose goals.

In particular embodiments, functionalities of network entities of thenetwork may be decomposed into a plurality of atomic services. Each ofthe plurality of atomic service may be implemented as a service modulerunning on one of a plurality of servers of the network. To provideconnectivity to a user or users, the network can coordinate a series ofservices in specific sequences to construct one or more servicepipelines, wherein the services in the pipelines may be mixed servicetypes of different network entity functionalities. User plane messagesas well as control plane signals may flow through correspondingconstructed service pipelines (e.g., message pipelines or controlpipelines). Physical deployment of the services in the pipelines maydepend on various factors including resource requirements of theservices or availability of the resources of the network with respect toconfigurations of the services. For example, multiple services may bedeployed on a single server if the multiple services do not consume muchcomputing resources, whereas only one service may be deployedexclusively on a server if the service consumes high resources (e.g., aheavy computation service).

In particular embodiments, the physical deployment of the services inthe pipelines may be flexible with respect to the decomposedfunctionality services of the network entities. For example, a networkentity may comprise a plurality of functionality services supportingmultiple network policies. However, if not all of the multiple networkpolicies are implemented in the current given network, then not all ofthe functionality services are needed for the current network. Thenetwork may only need to include the functionality services necessaryfor the current network and exclude the unnecessary services. In case anew functionality of the network entity is developed, or a functionalityof the network needs to be updated, the new or updating services can bequickly and conveniently added into the network.

In particular embodiments, the physical deployment of the services inthe pipelines may be scalable with respect to the network load. Thesystem may manage the capacity of the network by network dimensioningfor the capacity. More services can be added to the network when thenetwork traffic volume is high, and less services may be needed when thenetwork traffic volume is low. For example, when more downlink datapackets need to be processed, the network may add one or more decomposedpacket services needed for increased downlink data, instead of theentire packet entity. The services may be deployed to one or more servermachines of the network, such that more server machines may be neededwhen the network load is high and less server machines may be neededwhen the network load is low. Additionally, the services run on thedifferent server machines can be consolidated when the service instancesare changed. For example, during the peak load period, the servicepipelines may have more service instances to be processed, and thesystem may automatically scale up the network capacity by adding one ormore service instances. During the low network traffic period (e.g.,midnight), the service pipelines may have less services to be deployed,and the system may automatically scale down the network capacity byremoving one or more service instances. The server machines that processthe service instances may be reconfigured and the service instances maybe reconsolidated, such that the number of participating server machinesmay be increased or decreased, and the services on the server machinesmay be relocated.

The embodiments disclosed herein are only examples, and the scope ofthis disclosure is not limited to them. Particular embodiments mayinclude all, some, or none of the components, elements, features,functions, operations, or steps of the embodiments disclosed herein.Embodiments according to the invention are in particular disclosed inthe attached claims directed to a method, a storage medium, a system anda computer program product, wherein any feature mentioned in one claimcategory, e.g. method, can be claimed in another claim category, e.g.system, as well. The dependencies or references back in the attachedclaims are chosen for formal reasons only. However, any subject matterresulting from a deliberate reference back to any previous claims (inparticular multiple dependencies) can be claimed as well, so that anycombination of claims and the features thereof are disclosed and can beclaimed regardless of the dependencies chosen in the attached claims.The subject-matter which can be claimed comprises not only thecombinations of features as set out in the attached claims but also anyother combination of features in the claims, wherein each featurementioned in the claims can be combined with any other feature orcombination of other features in the claims. Furthermore, any of theembodiments and features described or depicted herein can be claimed ina separate claim and/or in any combination with any embodiment orfeature described or depicted herein or with any of the features of theattached claims.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates an example network environment in accordance withparticular embodiments.

FIG. 2 illustrates an example diagram of a service-oriented networkenvironment in accordance with particular embodiments.

FIG. 3 illustrates an example flowchart of network communication inaccordance with particular embodiments.

FIG. 4 illustrates an example method 400 for deploying networkfunctionalities.

FIG. 5 illustrates an example network environment associated with asocial-networking system.

FIG. 6 illustrates an example computer system.

DESCRIPTION OF EXAMPLE EMBODIMENTS

The embodiments described herein provide a system and a method of datacommunication on a network, such as a wired, wireless, or satellitenetwork. The system and method may use a service-oriented architecturewhich is a network framework of core network including non-wireless andwireless core network for providing converged voice and data on variousnetworks. For example, the various networks may include wired datacommunication services, satellite data communication, or differentgenerations of wireless services (e.g., second generation (2G), thirdgeneration (3G), fourth generation (4G), or fifth generation (5G)) withvarious standards (e.g., Long-Term Evolution (LTE) or LTE Advanced)based on various technologies (e.g., Global System for Mobile (GSM) orCode Division Multiple Access (CDMA)). The core network may supportpacket-switched traffic, and the interfaces of the core network arebased on Internet Protocols (IPs) such that all services can bedelivered through packet connections (e.g., data, voice, media, etc.).Mobile operators or mobile network providers can employ a packet networkfor all services by utilizing the core network to deploy the datacommunication architecture. The service-oriented architecture may unifyvoice and data on an Internet Protocol (IP) service architecture suchthat the voice is treated as just another IP application. This allowsoperators to deploy and operate one packet network for all generationsof wireless network including 2G, 3G, wireless local area network (WLAN)and LTE 4G, and fixed access including Ethernet, Digital Subscriber Line(DSL), cable and fiber optic.

Various challenges are faced in designing a packet core network. Some ofthese challenges include, managing the evolution of the packet corewithout impact to existing data services, considering the need toseparate user plane traffic and control traffic, migration from acentralized deployed architecture (e.g., network entity oriented) to amore distributed architecture (e.g., service oriented). In addition,deployment of core network may encounter increased cost and managementcomplexity.

FIG. 1 illustrates an example network environment in accordance withparticular embodiments. The network includes a core network 100 which isa wireless core network architecture comprising a plurality of networkentities, wherein the functionality of each of the network entities maycomprise a plurality of atomic services. In particular embodiments, thefunctionality of each network entity can be broken down into a pluralityof services which may be further broken down into sub-services.

A user equipment (UE) or a user device 102 may attach to a core network(e.g., core network 100) via one of a plurality of network towers (e.g.,access points (APs) including AP 106 a and AP 106 b). Through the corenetwork, the user device 102 can access an internet 104, and further tovarious external network systems 108 (e.g., FACEBOOK, HULU, or YOUTUBE).The user device 102 can be a hand-held mobile device, a laptop computerequipped with a mobile broadband adapter, or any other device useddirectly by an end-user to communicate via the wireless network. Thenetwork can be any of the wireless communication technologies like GSM,CDMA, WLAN, WI-FI, Worldwide Interoperability for Microwave Access(WiMAX) or other wide area network (WAN) technologies. The user device102 may connect to the AP 106 a or AP 106 b, which may be a basetransceiver station (BTS) in GSM networks or evolved node B (eNodeB oreNB) in LTE networks. The LTE is a standard for 4G wireless broadbandtechnology that offers increased network capacity and speed to mobiledevice users. The BTS or eNodeB is a piece of equipment that facilitateswireless communication between the user device 102 and the core network.

In particular embodiments, the functionalities of the network entitiesmay be broken down into the plurality of atomic services based on thenetwork entities, and the corresponding service instances can bedeployed to one of a plurality of server machines of the network. Forexample, a typical legacy core network, such as the core network 100 maycomprise a plurality of functionality entities including, withoutlimitation, a Mobility Management Entity (MME) 110, a Home SubscriberServer (HSS) 120, a Policy and Charging Rules Function (PCRF) 130, aService Gateway (SGW) 150, a Packet Gateway (PGW) 160, and/or any othernetwork entities. The MME 110 may be a control entity only, while theSGW 140 and PGW 150 can be a combination of control and data entity.Typically, in the network entity oriented architecture, the atomicservices may reside in the corresponding network entity and be deployed.In particular embodiments, in the service-oriented architecture, theservices may reside in one of server machines in a computing center(e.g., Cloud computing center or a local computation device) of thenetwork and be scheduled to be deployed.

For example, the functionality of the MME 110 may be decomposed to aplurality of atomic services (e.g., M1, M2, M3, M4, etc.), wherein theatomic service is the smallest functionality unit which can beindividually deployed and executed on the server machines. The HSS 120may comprise a plurality of atomic services (e.g., H1, H2, H3, etc.),the PCRF 130 may comprise a plurality of atomic services (e.g., PC1,PC2, PC3, etc.), the SGW 140 may comprise a plurality of atomic services(e.g., S1, S2, S3, S4, etc.), and the PGW 150 may comprise a pluralityof atomic services (e.g., PW1, PW2, PW3, PW4, etc.) In theservice-oriented architecture, the services M1-M4 may reside in one ofserver machines, the services H1-H3 and PC1-PC3 may reside in a secondserver machine, the services S1-S4 may reside in a third server machine,and the services PW1-PW4 may reside in a fourth server machine in acomputing center (e.g., Cloud computing center) of the network and bescheduled to be deployed.

To provide connectivity to the user device 102, the system cancoordinate a series of service instances to accomplish one or more tasksassociated with the user device 102, wherein the series of serviceinstances can be of different network entity functionalities in aspecific sequence. For example, a user may use the user device 102(e.g., a smart phone) for a task T1 (e.g., sending a video to a socialnetwork via the internet). The task T1 may comprise a sequence ofservice instances of M1-H1-M3-S1-PW2 of the respective network entitiesof the MME 110, HSS 120, SGW 140, and PGW 150. The system can coordinatethe deployment of the service instances in the specific sequence foraccomplishing the task T1. For example, the service M1 of the MME 110may be deployed followed by, the service H1 of the HSS120, the serviceM3 of the MME 110, the service S1 of the SGW 140, and the service PW2 ofthe PGW 150. The number, sequence, or types of the service instances foraccomplishing the respective tasks may be various with respect to thetasks. The coordination and the deployment of the series of serviceinstances may be network entity oriented, such that the system maydetermine which network entity may deploy the next phase service. Inparticular embodiments, the coordination and the deployment of theseries of service instances may be service-oriented, such that thesystem may determine which service is the next phase service and deploythe determined next phase service.

Since the functionality of each network entity may be pre-determined,the number and types of atomic services of each network entity may bepre-fixed with respect to the functionality of the network entity. Inthe event that a new service needs to be added or an existing serviceneeds to be replaced, the hardware and software of the correspondingnetwork entity may need to be updated for the addition or replacementservice. In particular embodiments, the service-oriented architecturemay enable the system to add a new service or to replace an existingservice easily and conveniently.

Further, expansion of the network for increasing network capacitytypically can be achieved by replication of one or more network entitiesin the network entity oriented architecture. The replication may includeall the atomic services of the network entities, even though some of theatomic services may not be necessary for the current network. Forexample, the local provider or operator would like to expand the networkcapacity for serving a large volume of phone calls. An additionalnetwork entity of MME may be necessary to manage the increased networktraffic. Although the operator determines that only services M1, M2, andM3 of the MME 110 are necessary for the expansion, the replication ofthe MME 110 may also include the service M4 in the network entityoriented architecture.

In particular embodiments, the replication may include only thenecessary atomic services of the network entities in theservice-oriented architecture. As stated in the above example, the localprovider or operator would like to expand the network capacity forserving the incremental number of subscribers. Instead of replicatingall the services of the MME 110, only the services M1, M2, and M3 may bereplicated, but the un-needed service M4 may not be included in thereplication. The elimination of unnecessary services in theservice-oriented architecture may result in an optimized network system.Vice versa, the network capacity can be downsized easily by removing oneor more services of the network entities. Using this mechanism, theservice-oriented architecture can be flexible for adding or removing theservices and can be scalable for increasing or decreasing the networkcapacity.

FIG. 2 illustrates an example diagram of a service-oriented networkenvironment in accordance with particular embodiments.

A service-oriented network architecture 200 is a wireless core networkarchitecture, in which the functionalities of network entities may bedecomposed into a plurality of atomic services with respect to theservices instead of network entities. The service-oriented networkarchitecture 200 may comprise a service chaining orchestration entity204 and a plurality of decomposed services, wherein the plurality ofdecomposed services may include services M1, M2, and M3 which are asubset of decomposed functionality of the MME 110 of FIG. 1, services H1and H2 which are a subset of decomposed functionality of the HSS 120 ofFIG. 1, services S1 and S2 which are a subset of the decomposedfunctionality of the SGW 140 of FIG. 1, and services PW1 and PW2 whichare a subset of decomposed functionality of the PGW 150 of FIG. 1.Optionally, the service-oriented architecture 200 may include a newservice 206, or a replacement service 208 which may replace or update anexisting service (e.g., the service S1 may be replaced by the serviceS3). The plurality of the service instances may reside in one or more ofserver machines of a computing center 220. The plurality of serviceinstances may be distributed to the one or more server machines withrespect to the required resources of the services, such that the M1-M3consumes light computation and can be deployed on server machines 230 a,the H1-H2 can be deployed on server machines 230 b, the S1-S2 can bedeployed on server machines 230 c, and the PW1-PW2 can be deployed onserver machines 230 d.

In particular embodiments, the functionalities of network entities inthe service-oriented network architecture 200 may be decomposed into aplurality of services, which may be a mix and match of functionalitiesof different network entities. For example, even though the service M4of FIG. 1 is a MME service, it may not be included in theservice-oriented network architecture 200 when it is unnecessary for thecurrent network operation. The service instances run on the servermachine 230 b may be a mix and match of functionalities of the HSS 120and NEW. Therefore, the service-oriented network architecture 200 may bean optimized architecture that comprises only the necessary decomposedatomic services to operate the current network, and the deployment ofthe services can be optimized and consolidated on the server machines.

In particular embodiments, each of the plurality of decomposed atomicservices may be deployed to and run on one of a plurality of servermachines of the network. For example, the service-oriented networkarchitecture 200 may comprise the services M1, M2, M3, H1, H2, S1, S2,PW1, and PW2, which may be configured by the service chainingorchestration entity 204. A series of the service instances can bescheduled in a specific sequence in a pipeline to accomplish a specifictask. The service chaining orchestration entity 204 may configure eachof the services with the operation related information, including a nextphase service type and the operation conditions associated thereto. Thecoordination of the series of service instances may be performed at theservice level, such that the service chaining orchestration entity 204may determine which service is for the next phase, wherein thedetermined service may be deployed to a computing center (e.g., thecomputing center 220). In particular embodiments, the services may bedeployed to a local computation device or to a virtual computationcenter.

The MME may be the key control-node for the network (e.g., the LTEnetwork). The MME is responsible for idle mode UE (User Equipment)paging and tagging procedures including retransmissions and the beareractivation/deactivation process. The MME may be also responsible forchoosing a SGW service for the UE at the initial attach and at time ofintra-LTE handover involving Core Network (CN) node relocation. The MMEmay be responsible for authenticating the user by interacting with theHome Subscriber Service (HSS) and for generation and allocation oftemporary identities to the UEs. The MME checks and enforces theauthorization of the UE. The MME is the termination point in the networkfor ciphering/integrity protection for Non Access Stratum (NAS)signaling and handles the security key management, and the lawfulinterception of signaling is also supported by the MME. The MME alsoprovides the control plane function for mobility between generations ofnetworks with the respective interface terminating at the MME from theServing GPRS Support Node (SGSN), wherein GPRS is General Packet RadioService.

The HSS is a central database that contains user-related andsubscription-related information. The functions of the HSS may includefunctionalities such as mobility management, call and sessionestablishment support, user authentication and access authorization.

The SGW functions may include routing and forwarding user data packets,while also acts as the mobility anchor for the user plane duringinter-eNodeB handovers and as the anchor for mobility between LTE andother generations of technologies (e.g., terminating S4 interface andrelaying the traffic between 2G/3G systems and PGW). For IDLE mode UEs,the SGW terminates the downlink data path and triggers paging whendownlink data arrives for the UE. The SGW manages and stores UE contexts(e.g., parameters of the IP bearer service, network internal routinginformation), and performs replication of the user traffic in case oflawful interception.

The PGW is a critical network function for the core network. The PGWacts as the interface between the LTE network and other packet datanetworks, such as the internet or IP Multimedia Subsystem (IMS)networks, by providing connectivity from the UE to external packet datanetworks and being the point of exit and entry of network traffic forthe UE. The PGW may serve as an anchor point for network mobilitybetween different generations of technology, act as the Policy andCharging Enforcement Function (PCEF), manage quality of service (QoS),or provide deep-packet inspection and lawful intercept. In particularembodiments, the PGW may simplify the network by acting as a standaloneelement, or it may be integrated with other network elements such as MMEor SGW. The UE may have simultaneous connectivity with more than one PGWfor accessing multiple Packet Data Networks (PDNs). In particularembodiments, the PGW may comprise services such as a phasing function.

In particular embodiments, in order to provide connectivity to the userdevice 102 of FIG. 1, the system can schedule a series of serviceinstances to accomplish one or more tasks associated with the userdevice 102, wherein the series of service instances can be of differenttypes of services in a specific sequence. As described previously, auser may use the user device 102 (e.g., a smart phone) for a task T1(e.g., sending a video to a social network via the internet). The taskT1 may comprise a sequence of service instances of M1-H1-M3-S1-PW2. Theservice chaining orchestration entity 204 can schedule the deployment ofthe service instances for accomplishing the task T1. For example, theservice chaining orchestration entity 204 may first deploy the serviceM1 followed by the service H1, the service M3, the service S1, and theservice PW2 to respective server machines in the computing center 220.The number, sequence, or types of the service instances foraccomplishing the respective tasks may be various with respect to thenature of the tasks. The coordination of the series of service instancesmay be performed at the service level, such that the service chainingorchestration entity 204 may determine which service is for the nextphase, wherein the determined service may be deployed to the respectiveserver machines.

In particular embodiments, multiple tasks can be launched simultaneouslyto the network. For example, another task T2 (e.g., watching movies onHULU) may comprise a series of services of M1-M2-S1-M3-S2-PW1, and/orother services including transcoding, caching, etc. The service chainingorchestration entity 204 can schedule the deployment of the serviceinstances in the specific sequence for accomplishing the task T2. Forexample, the service chaining orchestration entity 204 may deploy theservice M1 followed by the service M2, the service S1, the service M3,the service S2, and the service PW1 to the server machines in thecomputing center 220. The service instances for the multiple tasks(e.g., the tasks T1 and T2) may be scheduled in respective pipelines(e.g., the pipeline P1 or P2) and be deployed by the service chainingorchestration entity 204 when the service instances are ready. Theservice chaining orchestration entity 204 may determine when the serviceinstances are deployed and which server machine or machines that theservice instances are deployed to, based on the configurations of theservices and hashing of the encapsulation header field information. Inparticular embodiments, functions for operating the system may bescheduled in a control pipeline, while the service instances may beschedule in message pipelines for accomplishing the user tasks.

The service instances for the respective tasks may be scheduled intospecific sequences to construct one or more message pipelines by theservice chaining orchestration entity 204. The series of serviceinstances in the pipelines may be mixed and match of decomposed servicesof different functionalities of network entities. Each of the decomposedservices may be configured by the service chaining orchestration entity204, and the configuration of each decomposed services may include thetype of service in the next phase. For example, the configuration of theservice M3 may indicate that the next phase service is the service S2 inthe pipeline P1. The configurations of the services may also includeother information for the service chaining orchestration entity 204 todetermine which service is the next phase service to deploy.

Alternatively, the configurations of the services may include a list ofnext phase service types and corresponding conditions thereof forforwarding a message. In the above example, the service M1 may have alist of next phase services (e.g., the service H1 or service M2). Theservice chaining orchestration entity 204 may determine which service isthe next phase service based on the conditions of the next phaseservices, such that the next phase service may be the service H1 underthe condition for the task T1, while it may be the service M2 under thecondition for the task T2. For example, a packet classification servicemay determine a packet type, and the next phase service type may bedetermined with respect to the determined packet type. When the packetclassification service determines that the packet type is not azero-rating class, the packet classification service may forward thepacket to a packet metering service. However, if the packetclassification service determines that the packet belongs to azero-rating class, the packet classification service may skip the packetmetering service and forward the packet to another service. In thisexample, the configuration of the packet classification service maycomprise a list of next phase service types (e.g., a packet meteringservice and other services) and the conditions thereof (e.g., thezero-rating class or non-zero-rating class).

The configurations of the services may be initially programed withrespect to the respective task and subsequently be updated by theservice chaining orchestration entity 204 when there is a new servicebeing added or an existing service being replaced.

In particular embodiments, messages in the message or service pipelineP1 may be encapsulated by an encapsulation protocol (e.g., Genericrouting encapsulation (GRE), Internet Protocol Security (IPsec), VirtualExtensible LAN (VXLAN), etc.), wherein the encapsulation protocol has anencapsulation header with one or more fields. When a current phaseservice is finished on a message, the service chaining orchestrationentity 204 may determine the next phase service type based on theconfigurations of the current phase service. If there are multipleservice instances with respect to the determined next phase servicetype, the system may hash one or more values of encapsulation headerfields of the messages. For example, the encapsulation header has anInternational Mobile Subscriber Identity (IMSI) field that identifiessubscribers of the network. The service chaining orchestration entity204 may determine the next phase service instance that handles theidentified subscribers by hashing the IMSI value from the encapsulationheader. For another example, there may be multiple policy enforcingservice instances in the network, wherein each policy enforcing instancemay handle different traffic class. After the packet classificationservice classifies a packet type, the packet classification service mayfill a packet class field in the encapsulation header with respect tothe identified packet type. Hashing the packet type value in theencapsulation header may determine the corresponding policy enforcingservice instance for the said packet. Notably, each service may beagnostic to the functionalities of the other services in the servicepipeline.

In particular embodiments, the protocol architecture of the network(e.g., LTE network) may be divided into a user plane protocol and acontrol plane protocol. At the user plane side, data packets may becreated and processed by the user plane protocols (e.g., TransmissionControl Protocol (TCP), User Datagram Protocol (UDP), or IP), while inthe control plane, the signaling messages may be written and exchangedbetween the base stations and the mobile devices by the control planeprotocol. The user plane protocol stack between the eNodeB and UE maycomprise one or more sublayers, wherein the sublayers may include aPacket Data Convergence Protocol (PDCP) layer, a radio Link Control(RLC) layer, and a Medium Access Control (MAC) layer. On the user plane,packets in the core network may be encapsulated in a specific networkprotocol and tunneled between the PGW and the eNodeB. Differenttunneling protocols may be used with respect to the interfaces, suchthat a S1 interface may be used between the eNodeB and SGW or MME and aS5/S8 interface may be used between the SGW and PGW.

The control plane may include additional control layer which isresponsible for configuring the lower layers (e.g., a physical layer).The control plane may handle radio-specific functionality based on thestate of the UE, wherein the state of the UE includes idle mode orconnected mode. In the idle mode, the UE may camp on a cell after a cellselection or reselection process, and the control plane protocols mayinclude cell selection and reselection procedures. The UE may alsomonitor a paging channel to detect incoming calls and acquire systeminformation. In the connected mode, the UE may supply the EvolvedUniversal Terrestrial Radio Access Network (E-UTRAN) with downlinkchannel quality and neighbor cell information to enable the E-UTRAN toselect the most suitable cell for the UE.

In particular embodiments, user plane messages as well as control planesignals may flow through corresponding constructed service pipelines(e.g., a message pipeline or a control pipeline). Physical deployment ofthe services in the pipelines may depend on various factors includingresource requirements of the services or availability of the networkresources. For example, multiple services may be deployed on a singleserver machine if the multiple services do not consume much computingresources, whereas only one service may be deployed exclusively on aserver machine if the service consumes high resources (e.g., a heavycomputation service). For example, in the service-oriented networkarchitecture 200, the computing center 220 may comprise the plurality ofserver machines 230 a, 230 b, 230 c, and 230 d. The service instances inthe pipeline P1 may be deployed to one or more of the server machineswith respect to the service types. The system may determine that theservice instances M1, M2, and M3 require light computation. If thecurrent available resource of the server machine 230 a is enough forprocess the service instances M1, M2, and M3, the service instances M1,M2, and M3 may be deployed to the server machine 230 a. If the currentavailable resource of the server machine 230 a is not enough for processthe service instances M1, M2, and M3, but the server machine 230 c isable to process the service instances M1, M2, and M3, the serviceinstances may be deployed to the server machine 230 c. Alternatively,the service instances M1, M2, and M3 may be split to different servermachines.

In particular embodiments, the capacity of the network may be easilyadjusted with respect to network load change. The capacity of thenetwork in the said service-oriented network architecture 200 may beeasily scaled up when the network load increases or scaled down when thenetwork load decreases. For example, when the network load is light,there are enough MME services instances available for processing thepackets, and only the server machines 230 a and 230 c may be needed toprocess the service instances being deployed thereto. When the networkload is increased, the system may determine that more MME services areneeded for handling the network traffic, or more specifically, moreservices M1 are needed. Contrary to replication of entire MME in thenetwork entity oriented architecture, the service-oriented networkarchitecture may be able to add only the needed service (e.g., theservice M1) for scaling up the network capacity. Depending on the numberof the service instances and the server machine capacities, the serviceinstances can be deployed to a number of server machines. For example,the MME service instances may be deployed to a few server machines sincethey consume less resources, while the SGW service instances may bedeployed to a hundred server machines since they involve heavycomputation. When the peak hours are passed, or the network load isdecreased, the system may determine to scale down the network capacityby reducing the number of the services. The number and types of theservice instances can be increased or decreased, and the server machinesto be deployed can be reconfigured. In particular embodiments, thechanges of the network traffic types may also trigger the networkscaling up or down. For example, when the network has hundreds of phonecalls but only a few website searching activities, the system may need alot of MME services but only one SGW/PGW service, wherein the MME andSGW/PGW services may be mixed and running on a few server machines(e.g., the MME services may be deployed to five server machines but theSGW/PGW is deployed to only one server machine). When the system load ischanged to a few phone calls but a lot of HULU watching activities, thesystem may determine to add another SGW or PGW but reduce the number ofMME services. The deployments of the services may also be reconfigured,such that the two SGW/PGW services may be deployed to two servermachines exclusively, and the MME services may be deployed to oneseparated server machine. In such a mechanism, the capacity of thenetwork can be easily adjusted dynamically with respect to the networkload changes, resulting in an autonomous scalable network. In particularembodiments, the network dimensioning may be manually performed as well.

Ideally, the network dimensioning may be performed during low trafficmoment, when the network load is the lightest to minimize the possibleimpact to the network. Alternatively, the network dimensioning may beperformed on the fly with respect to the dynamically changed networkload. One of various methods of network dimensioning may be setting up aseparate second environment and redirect a portion of the current activeservices of the first environment to the second environment. The statesof the current active services in the first environment can be saved toa cache or any memory storage. When the active services of the firstenvironment are going to be redirected to the second environment, thestates of the respective current active services may be copied over tothe second environment, and the respective current active services maybe run in the second environment based on the recorded states thereof.After the respective current active services are redirected to thesecond environment, the states of the current active services of thefirst environment may be deleted. Using this service redirectionmechanism, the network capacity can be dynamically scaled up or down byautonomous dimensioning, and the redirection may be atomic to avoid thepackets to be split up.

In particular embodiments, new functionalities may be introduced withminimum efforts or cost by using the service-oriented networkarchitecture. For example, the new service 206 is introduced into thenetwork for a new provider or local operator. The service chainingorchestration entity 204 may provide the initial configuration of thenew service 206 and reconfigure the service instance immediately infront of the service NEW (e.g., the service PW2). The configuration ofthe service PW2 may be updated by changing the next phase service typeto NEW and setting the corresponding conditions thereof. The servicechaining orchestration entity 204 may also update any serviceconfigurations that relevant to the new service 206. Theservice-oriented network architecture 200 may enable multiple networkproviders or operators to share the same network, such that the multipleproviders can access the towers in the same network. Similarly, if aservice is no long needed in the network, such that a service needs tobe deleted or replaced, the service chaining orchestration entity 204may update any service configurations that are relevant to the removedor replaced service, specifically the service immediately in front ofthe deleted or replaced service. Additionally, all the currently activeservices in the network may write a current service status (e.g.,service contexts for each active subscriber, etc.) to a database (e.g.,REDIS, which is an open-source in memory database.) For example, thereplacement service 208 is used to replace the existing service S2.Before the service S2 is deployed to the respective server machine, theservice chaining orchestration entity 204 may reconfigure the serviceM3, such that the next phase service type of the service M3 is theservice S5 instead of the service S2, and the messages may be forwardedto the service S5 instead of the service S2. The service S5 may beconfigured by the service chaining orchestration entity 204 such thatthe next phase service type of the service S5 is the service PW1. In themeantime, the service chaining orchestration entity 204 may update anyservice configurations that are relevant to the service S2 or serviceS5. In the case that the service S2 is deleted, the service chainingorchestration entity 204 may reconfigure the service M3, such that theservice S2 is skipped and the next phase service of the service M3 isthe service PW1.

In particular embodiments, the service-oriented architecture may enablethe developer to add or update the service functionality independently.For example, the network operator wants to update the policy enforcementservice for adding new classification type. A new service may be simplycreated with a set of new rules or parameters and be configured by theservice chaining orchestration entity 204 to replace the existingservice for maintenance (e.g., fixing a bug or compile with an updatedoperating system). This mechanism may bring in more flexibility toeasily keep the network optimized and up to date.

FIG. 3 illustrates an example flowchart of network communication inaccordance with particular embodiments. In the networks, a UE or a userdevice 102 of FIG. 1 may be connected to the core network 100 via aneNodeB or BTS and then go to IDLE mode (e.g., turning on a smart phonebut not using it). When the user device 102 wakes up from the IDLE modefor sending an uplink data to an external network system 108 (e.g.,uploading a video to a social networking system), the user device 102may send a signaling message (e.g., an uplink request 310) to establisha connection to a previously connected MME service instance and performa process 320 of retrieving the last NAS context records. In theproposed network, although all MME service instances share a single MMEidentifier, the NAS state may be different since the services might bephysically run on different server machines, and the NAS state machinemay be changed with respect to where the service last ran. Because theMME configurations have NAS contexts including existing bearers andassociated parameters thereof, when receives the signaling message(e.g., the uplink request 310) from the user device 102, the latestconfigured MME service instance may request services from a directoryservice for locating the latest NAS context records, wherein thedirectory service is a distributor service that keeps a list (e.g., adirectory D) of active elements on server machines and distribute theNAS state of where the user device 102 was last active. When receives aresponse from the directory service, the MME service may fetch thelatest NAS contexts records with respect to the location informationembedded in the directory service response and perform a process 326 ofauthentication of the received uplink request for the user device 102with respect to the retrieved latest NAS contexts. If the authenticationis successful, a bearer activation procedure 330 may be performed, andthe user device 102 may enter a CONNECTED mode for sending the uplinkdata. Once the user device 102 received an acknowledge 340 from theexternal network system 108, the uplink packets 360 may be sent to theexternal network system 108. For example, the network may authenticatewhether the user device 102 is a subscriber of the network. If theauthentication procedure is successful, such that the user device 102 isauthenticated to connect to the network, the bearer activation procedurefor the user device 102 may be performed, and the user device 102 mayenter a CONNECTED mode for sending the uplink data once the beareractivation is completed. The system may start to deploy the services inthe bearer (e.g., the pipeline) to the Cloud computer center, and theuplink data communication may be established.

NAS is a functional layer forming the highest stratum of the controlplane between the MME and a user equipment (UE). Main functions of theNAS protocols are the support of mobility of the user equipment (UE) andthe support of session management procedures to establish and maintainIP connectivity between the UE and a packet data network gateway (PGW).In particular embodiments, the NAS control protocol may performfunctions including bearer management, authentication, activation,paging procedure, or security control, define the rules for a mappingbetween parameters during inter-system mobility with the respectivenetworks, and also provide the NAS security by integrity protection andciphering of NAS signaling messages. Additionally, the NAS contexts maycontain other information of the last activity of the user device 102,which may include the IP addresses or which eNodeB the user device 102was active on.

In particular embodiments, the system may identify which towers (e.g.,eNodeB or base station) are close to the user device 102, and thetopological information of the identified towers may be provided. When auser is approaching to the identified nearby towers, the previous statesof the user device that was cached may be pre-populated to the nearbytowers. For example, the previous NAS state of the user device 102 wasat a tower A, and the previous NAS state of the user device 102 may havebeen cached. The system may identify that tower B and tower C are nearbythe user and pre-populate the recorded NAS state of the user device atthe tower A to the identified tower B and tower C. Therefore, when theuser device attaches to the tower B or tower C, the NAS state of theuser device may have been known, resulting in a reduction of latency.

When a downlink data for the user device 102 arrives at a packetsgateway service (PGW) of the core network 100 from the externalnetworking system 108, the PGW may receive a signaling message (e.g.,downlink request 312) from the external networking system 108.Typically, the downlink packet may arrive at the PGW service and beforwarded to the SGW service instance. The SGW service instance mayperform the process 320 of retrieving the last NAS context records fromthe directory service for locating the latest NAS contexts records ofthe user device 102. When receives a response from the directoryservice, the SGW service may fetch the latest NAS contexts records ofthe user device 102 with respect to the location information embedded inthe directory service response and perform the process 326 ofauthentication of the received downlink request for the user device 102with respect to the retrieved latest NAS contexts. If the authenticationis successful, a paging procedure 332 may be performed, wherein thepaging procedure may wake up the closest eNodeB and the user device 102for receiving the downlink data. If the closest eNodeB does notresponse, the paging may be extended to another nearby eNodeB. When aresponse 342 is received from the user device 102, the downlink packets362 may be received from the external network system 108 at the userdevice 102. For example, the network may authenticate whether the userdevice 102 is a subscriber of the network. If the authenticationprocedure is successful, such that the user device 102 is authenticatedto connect to the network, the paging procedure for the user device 102may be performed, and the user device 102 may enter a CONNECTED mode forreceiving the downlink data once the paging procedure is completed, andthe downlink data communication may be established. In particularembodiments, the downlink packet may be forwarded to the last gatewaythe user device 102 was served, and then the downlinked packet may betunnel forwarded to the new location (e.g., new eNodeB), wherein the newlocation may start the paging procedure.

FIG. 4 illustrates an example method 400 for deploying networkfunctionalities. The method may begin at step 410, where a userequipment (UE) or a user device may access a network (e.g., a corenetwork) by via an access points (e.g., an eNodeB), wherein the networkcomprises one or more network functionality components. At step 420,each of the one or more network functionality components may bedecomposed into multiple services types. At step 430, receiving one ormore user tasks, wherein a plurality of service instances may beassociated with each of the one or more user tasks, wherein one or moreof the plurality of service instances belong to one of the multipledecomposed service types. At step 440, the plurality of serviceinstances may be configured by a service chaining orchestration entityof the core network. At step 450, the plurality of service instances maybe deployed to one or more server machines of the core network withrespect to the configurations of the plurality of service instances bythe service chaining orchestration entity of the core network. At step460, the capacity of the network may be scaled up or down by networkdimensioning. Particular embodiments may repeat one or more steps of themethod of FIG. 4, where appropriate. Although this disclosure describesand illustrates particular steps of the method of FIG. 4 as occurring ina particular order, this disclosure contemplates any suitable steps ofthe method of FIG. 4 occurring in any suitable order. Moreover, althoughthis disclosure describes and illustrates an example method fordeploying network functionalities including the particular steps of themethod of FIG. 4, this disclosure contemplates any suitable method forwireless communication including any suitable steps, which may includeall, some, or none of the steps of the method of FIG. 4, whereappropriate. Furthermore, although this disclosure describes andillustrates particular components, devices, or systems carrying outparticular steps of the method of FIG. 4, this disclosure contemplatesany suitable combination of any suitable components, devices, or systemscarrying out any suitable steps of the method of FIG. 4.

FIG. 5 illustrates an example network environment 500 associated with asocial-networking system. Network environment 500 includes a user 501, aclient system 530, a social-networking system 560, and a third-partysystem 570 connected to each other by a network 510. Although FIG. 5illustrates a particular arrangement of user 501, client system 530,social-networking system 560, third-party system 570, and network 510,this disclosure contemplates any suitable arrangement of user 501,client system 530, social-networking system 560, third-party system 570,and network 510. As an example and not by way of limitation, two or moreof client system 530, social-networking system 560, and third-partysystem 570 may be connected to each other directly, bypassing network510. As another example, two or more of client system 530,social-networking system 560, and third-party system 570 may bephysically or logically co-located with each other in whole or in part.Moreover, although FIG. 5 illustrates a particular number of users 501,client systems 530, social-networking systems 560, third-party systems570, and networks 510, this disclosure contemplates any suitable numberof users 501, client systems 530, social-networking systems 560,third-party systems 570, and networks 510. As an example and not by wayof limitation, network environment 500 may include multiple users 501,client system 530, social-networking systems 560, third-party systems570, and networks 510.

In particular embodiments, user 501 may be an individual (human user),an entity (e.g., an enterprise, business, or third-party application),or a group (e.g., of individuals or entities) that interacts orcommunicates with or over social-networking system 560. In particularembodiments, social-networking system 560 may be a network-addressablecomputing system hosting an online social network. Social-networkingsystem 560 may generate, store, receive, and send social-networkingdata, such as, for example, user-profile data, concept-profile data,social-graph information, or other suitable data related to the onlinesocial network. Social-networking system 560 may be accessed by theother components of network environment 500 either directly or vianetwork 510. In particular embodiments, social-networking system 560 mayinclude an authorization server (or other suitable component(s)) thatallows users 501 to opt in to or opt out of having their actions loggedby social-networking system 560 or shared with other systems (e.g.,third-party systems 570), for example, by setting appropriate privacysettings. A privacy setting of a user may determine what informationassociated with the user may be logged, how information associated withthe user may be logged, when information associated with the user may belogged, who may log information associated with the user, whominformation associated with the user may be shared with, and for whatpurposes information associated with the user may be logged or shared.Authorization servers may be used to enforce one or more privacysettings of the users of social-networking system 30 through blocking,data hashing, anonymization, or other suitable techniques asappropriate. In particular embodiments, third-party system 570 may be anetwork-addressable computing system that can host networkcommunication. Third-party system 570 may generate, store, receive, andsend uplink data or downlink data, such as, for example, networkcommand, data packages, user requests, and/or network configurationinformation. Third-party system 570 may be accessed by the othercomponents of network environment 500 either directly or via network510. In particular embodiments, one or more users 501 may use one ormore client systems 530 to access, send data to, and receive data fromsocial-networking system 560 or third-party system 570. Client system530 may access social-networking system 560 or third-party system 570directly, via network 510, or via a third-party system. As an exampleand not by way of limitation, client system 530 may access third-partysystem 570 via social-networking system 560. Client system 530 may beany suitable computing device, such as, for example, a personalcomputer, a laptop computer, a cellular telephone, a smartphone, atablet computer, or an augmented/virtual reality device.

This disclosure contemplates any suitable network 510. As an example andnot by way of limitation, one or more portions of network 510 mayinclude an ad hoc network, an intranet, an extranet, a virtual privatenetwork (VPN), a local area network (LAN), a wireless LAN (WLAN), a widearea network (WAN), a wireless WAN (WWAN), a metropolitan area network(MAN), a portion of the Internet, a portion of the Public SwitchedTelephone Network (PSTN), a cellular telephone network, or a combinationof two or more of these. Network 510 may include one or more networks510.

Links 550 may connect client system 530, social-networking system 560,and third-party system 570 to communication network 510 or to eachother. This disclosure contemplates any suitable links 550. Inparticular embodiments, one or more links 550 include one or morewireline (such as for example Digital Subscriber Line (DSL) or Data OverCable Service Interface Specification (DOC SIS)), wireless (such as forexample Wi-Fi or Worldwide Interoperability for Microwave Access(WiMAX)), or optical (such as for example Synchronous Optical Network(SONET) or Synchronous Digital Hierarchy (SDH)) links. In particularembodiments, one or more links 550 each include an ad hoc network, anintranet, an extranet, a VPN, a LAN, a WLAN, a WAN, a WWAN, a MAN, aportion of the Internet, a portion of the PSTN, a cellulartechnology-based network, a satellite communications technology-basednetwork, another link 550, or a combination of two or more such links550. Links 550 need not necessarily be the same throughout networkenvironment 500. One or more first links 550 may differ in one or morerespects from one or more second links 550.

FIG. 6 illustrates an example computer system 600. In particularembodiments, one or more computer systems 600 perform one or more stepsof one or more methods described or illustrated herein. In particularembodiments, one or more computer systems 600 provide functionalitydescribed or illustrated herein. In particular embodiments, softwarerunning on one or more computer systems 600 performs one or more stepsof one or more methods described or illustrated herein or providesfunctionality described or illustrated herein. Particular embodimentsinclude one or more portions of one or more computer systems 600.Herein, reference to a computer system may encompass a computing device,and vice versa, where appropriate. Moreover, reference to a computersystem may encompass one or more computer systems, where appropriate.

This disclosure contemplates any suitable number of computer systems600. This disclosure contemplates computer system 600 taking anysuitable physical form. As example and not by way of limitation,computer system 600 may be an embedded computer system, a system-on-chip(SOC), a single-board computer system (SBC) (such as, for example, acomputer-on-module (COM) or system-on-module (SOM)), a desktop computersystem, a laptop or notebook computer system, an interactive kiosk, amainframe, a mesh of computer systems, a mobile telephone, a personaldigital assistant (PDA), a server, a tablet computer system, anaugmented/virtual reality device, or a combination of two or more ofthese. Where appropriate, computer system 600 may include one or morecomputer systems 600; be unitary or distributed; span multiplelocations; span multiple machines; span multiple data centers; or residein a Cloud, which may include one or more Cloud components in one ormore networks. Where appropriate, one or more computer systems 600 mayperform without substantial spatial or temporal limitation one or moresteps of one or more methods described or illustrated herein. As anexample and not by way of limitation, one or more computer systems 600may perform in real time or in batch mode one or more steps of one ormore methods described or illustrated herein. One or more computersystems 600 may perform at different times or at different locations oneor more steps of one or more methods described or illustrated herein,where appropriate.

In particular embodiments, computer system 600 includes a processor 602,memory 604, storage 606, an input/output (I/O) interface 608, acommunication interface 610, and a bus 612. Although this disclosuredescribes and illustrates a particular computer system having aparticular number of particular components in a particular arrangement,this disclosure contemplates any suitable computer system having anysuitable number of any suitable components in any suitable arrangement.

In particular embodiments, processor 602 includes hardware for executinginstructions, such as those making up a computer program. As an exampleand not by way of limitation, to execute instructions, processor 602 mayretrieve (or fetch) the instructions from an internal register, aninternal cache, memory 604, or storage 606; decode and execute them; andthen write one or more results to an internal register, an internalcache, memory 604, or storage 606. In particular embodiments, processor602 may include one or more internal caches for data, instructions, oraddresses. This disclosure contemplates processor 602 including anysuitable number of any suitable internal caches, where appropriate. Asan example and not by way of limitation, processor 602 may include oneor more instruction caches, one or more data caches, and one or moretranslation lookaside buffers (TLBs). Instructions in the instructioncaches may be copies of instructions in memory 604 or storage 606, andthe instruction caches may speed up retrieval of those instructions byprocessor 602. Data in the data caches may be copies of data in memory604 or storage 606 for instructions executing at processor 602 tooperate on; the results of previous instructions executed at processor602 for access by subsequent instructions executing at processor 602 orfor writing to memory 604 or storage 606; or other suitable data. Thedata caches may speed up read or write operations by processor 602. TheTLBs may speed up virtual-address translation for processor 602. Inparticular embodiments, processor 602 may include one or more internalregisters for data, instructions, or addresses. This disclosurecontemplates processor 602 including any suitable number of any suitableinternal registers, where appropriate. Where appropriate, processor 602may include one or more arithmetic logic units (ALUs); be a multi-coreprocessor; or include one or more processors 602. Although thisdisclosure describes and illustrates a particular processor, thisdisclosure contemplates any suitable processor.

In particular embodiments, memory 604 includes main memory for storinginstructions for processor 602 to execute or data for processor 602 tooperate on. As an example and not by way of limitation, computer system600 may load instructions from storage 606 or another source (such as,for example, another computer system 600) to memory 604. Processor 602may then load the instructions from memory 604 to an internal registeror internal cache. To execute the instructions, processor 602 mayretrieve the instructions from the internal register or internal cacheand decode them. During or after execution of the instructions,processor 602 may write one or more results (which may be intermediateor final results) to the internal register or internal cache. Processor602 may then write one or more of those results to memory 604. Inparticular embodiments, processor 602 executes only instructions in oneor more internal registers or internal caches or in memory 604 (asopposed to storage 606 or elsewhere) and operates only on data in one ormore internal registers or internal caches or in memory 604 (as opposedto storage 606 or elsewhere). One or more memory buses (which may eachinclude an address bus and a data bus) may couple processor 602 tomemory 604. Bus 612 may include one or more memory buses, as describedbelow. In particular embodiments, one or more memory management units(MMUs) reside between processor 602 and memory 604 and facilitateaccesses to memory 604 requested by processor 602. In particularembodiments, memory 604 includes random access memory (RAM). This RAMmay be volatile memory, where appropriate. Where appropriate, this RAMmay be dynamic RAM (DRAM) or static RAM (SRAM). Moreover, whereappropriate, this RAM may be single-ported or multi-ported RAM. Thisdisclosure contemplates any suitable RAM. Memory 604 may include one ormore memories 604, where appropriate. Although this disclosure describesand illustrates particular memory, this disclosure contemplates anysuitable memory.

In particular embodiments, storage 606 includes mass storage for data orinstructions. As an example and not by way of limitation, storage 606may include a hard disk drive (HDD), a floppy disk drive, flash memory,an optical disc, a magneto-optical disc, magnetic tape, or a UniversalSerial Bus (USB) drive or a combination of two or more of these. Storage606 may include removable or non-removable (or fixed) media, whereappropriate. Storage 606 may be internal or external to computer system600, where appropriate. In particular embodiments, storage 606 isnon-volatile, solid-state memory. In particular embodiments, storage 606includes read-only memory (ROM). Where appropriate, this ROM may bemask-programmed ROM, programmable ROM (PROM), erasable PROM (EPROM),electrically erasable PROM (EEPROM), electrically alterable ROM (EAROM),or flash memory or a combination of two or more of these. Thisdisclosure contemplates mass storage 606 taking any suitable physicalform. Storage 606 may include one or more storage control unitsfacilitating communication between processor 602 and storage 606, whereappropriate. Where appropriate, storage 606 may include one or morestorages 606. Although this disclosure describes and illustratesparticular storage, this disclosure contemplates any suitable storage.

In particular embodiments, I/O interface 608 includes hardware,software, or both, providing one or more interfaces for communicationbetween computer system 600 and one or more I/O devices. Computer system600 may include one or more of these I/O devices, where appropriate. Oneor more of these I/O devices may enable communication between a personand computer system 600. As an example and not by way of limitation, anI/O device may include a keyboard, keypad, microphone, monitor, mouse,printer, scanner, speaker, still camera, stylus, tablet, touch screen,trackball, video camera, another suitable I/O device or a combination oftwo or more of these. An I/O device may include one or more sensors.This disclosure contemplates any suitable I/O devices and any suitableI/O interfaces 608 for them. Where appropriate, I/O interface 608 mayinclude one or more device or software drivers enabling processor 602 todrive one or more of these I/O devices. I/O interface 608 may includeone or more I/O interfaces 608, where appropriate. Although thisdisclosure describes and illustrates a particular I/O interface, thisdisclosure contemplates any suitable I/O interface.

In particular embodiments, communication interface 610 includeshardware, software, or both providing one or more interfaces forcommunication (such as, for example, packet-based communication) betweencomputer system 600 and one or more other computer systems 600 or one ormore networks. As an example and not by way of limitation, communicationinterface 610 may include a network interface controller (NIC) ornetwork adapter for communicating with an Ethernet or other wire-basednetwork or a wireless NIC (WNIC) or wireless adapter for communicatingwith a wireless network, such as a WI-FI network. This disclosurecontemplates any suitable network and any suitable communicationinterface 610 for it. As an example and not by way of limitation,computer system 600 may communicate with an ad hoc network, a personalarea network (PAN), a local area network (LAN), a wide area network(WAN), a metropolitan area network (MAN), or one or more portions of theInternet or a combination of two or more of these. One or more portionsof one or more of these networks may be wired or wireless. As anexample, computer system 600 may communicate with a wireless PAN (WPAN)(such as, for example, a BLUETOOTH WPAN), a WI-FI network, a WI-MAXnetwork, a cellular telephone network (such as, for example, a GlobalSystem for Mobile Communications (GSM) network), or other suitablewireless network or a combination of two or more of these. Computersystem 600 may include any suitable communication interface 610 for anyof these networks, where appropriate. Communication interface 610 mayinclude one or more communication interfaces 610, where appropriate.Although this disclosure describes and illustrates a particularcommunication interface, this disclosure contemplates any suitablecommunication interface.

In particular embodiments, bus 612 includes hardware, software, or bothcoupling components of computer system 600 to each other. As an exampleand not by way of limitation, bus 612 may include an AcceleratedGraphics Port (AGP) or other graphics bus, an Enhanced Industry StandardArchitecture (EISA) bus, a front-side bus (FSB), a HYPERTRANSPORT (HT)interconnect, an Industry Standard Architecture (ISA) bus, an INFINIBANDinterconnect, a low-pin-count (LPC) bus, a memory bus, a Micro ChannelArchitecture (MCA) bus, a Peripheral Component Interconnect (PCI) bus, aPCI-Express (PCIe) bus, a serial advanced technology attachment (SATA)bus, a Video Electronics Standards Association local (VLB) bus, oranother suitable bus or a combination of two or more of these. Bus 612may include one or more buses 612, where appropriate. Although thisdisclosure describes and illustrates a particular bus, this disclosurecontemplates any suitable bus or interconnect.

Herein, a computer-readable non-transitory storage medium or media mayinclude one or more semiconductor-based or other integrated circuits(ICs) (such, as for example, field-programmable gate arrays (FPGAs) orapplication-specific ICs (ASICs)), hard disk drives (HDDs), hybrid harddrives (HHDs), optical discs, optical disc drives (ODDs),magneto-optical discs, magneto-optical drives, floppy diskettes, floppydisk drives (FDDs), magnetic tapes, solid-state drives (SSDs),RAM-drives, SECURE DIGITAL cards or drives, any other suitablecomputer-readable non-transitory storage media, or any suitablecombination of two or more of these, where appropriate. Acomputer-readable non-transitory storage medium may be volatile,non-volatile, or a combination of volatile and non-volatile, whereappropriate.

Herein, “or” is inclusive and not exclusive, unless expressly indicatedotherwise or indicated otherwise by context. Therefore, herein, “A or B”means “A, B, or both,” unless expressly indicated otherwise or indicatedotherwise by context. Moreover, “and” is both joint and several, unlessexpressly indicated otherwise or indicated otherwise by context.Therefore, herein, “A and B” means “A and B, jointly or severally,”unless expressly indicated otherwise or indicated otherwise by context.

The scope of this disclosure encompasses all changes, substitutions,variations, alterations, and modifications to the example embodimentsdescribed or illustrated herein that a person having ordinary skill inthe art would comprehend. The scope of this disclosure is not limited tothe example embodiments described or illustrated herein. Moreover,although this disclosure describes and illustrates respectiveembodiments herein as including particular components, elements,feature, functions, operations, or steps, any of these embodiments mayinclude any combination or permutation of any of the components,elements, features, functions, operations, or steps described orillustrated anywhere herein that a person having ordinary skill in theart would comprehend. Furthermore, reference in the appended claims toan apparatus or system or a component of an apparatus or system beingadapted to, arranged to, capable of, configured to, enabled to, operableto, or operative to perform a particular function encompasses thatapparatus, system, component, whether or not it or that particularfunction is activated, turned on, or unlocked, as long as thatapparatus, system, or component is so adapted, arranged, capable,configured, enabled, operable, or operative. Additionally, although thisdisclosure describes or illustrates particular embodiments as providingparticular advantages, particular embodiments may provide none, some, orall of these advantages.

What is claimed is:
 1. A method comprising: receiving, by a corenetwork, from a user device via an access point, a request to perform atask, wherein the core network comprises one or more networkfunctionality components, wherein each of the one or more networkfunctionality components is decomposed into multiple service types;identifying, by the core network, a plurality of service instances fordeployment to accomplish the task, wherein each of the plurality ofservice instances belongs to one of the multiple decomposed servicetypes; and deploying, by the core network, the plurality of serviceinstances to one or more server machines of the core network accordingto a schedule based on resource requirements of the service instancesand current resource availability of the one or more server machines. 2.The method of claim 1, further comprising: forming one or morepipelines, wherein the one or more pipelines comprise the sequence ofthe plurality of service instances.
 3. The method of claim 2, furthercomprising: hashing one or more fields of an encapsulation header of anencapsulation protocol for determining which of the one or more servermachines are deployed.
 4. The method of claim 2, further comprisingforming a message pipeline.
 5. The method of claim 1, wherein the one ormore network functionality components are decomposed into multipleservice types by a service-oriented decomposing.
 6. The method of claim1, further comprising: scheduling, by the core network, the plurality ofservice instances for deployment to accomplish the task.
 7. The methodof claim 6, further comprising rescheduling the plurality of serviceinstances.
 8. The method of claim 1, further comprising: updating one ormore of the multiple decomposed service types or adding one or more newservice types.
 9. The method of claim 1, further comprising: scaling acapacity of the core network by network dimensioning, wherein thenetwork dimensioning includes dynamically adjusting a number of theplurality of service instances or consolidating the servicer machinesbeing deployed with respect to a network load.
 10. The method of claim1, wherein the decomposing each of the one or more functionalitycomponents include decomposing functionality components of at least aMobility Management Entity (MME), a Service Gateway (SGW), or a PacketGateway (PGW).
 11. One or more computer-readable non-transitory storagemedia embodying software that is operable when executed to: receive, bya core network, from a user device via an access point, a request toperform a task, wherein the core network comprises one or more networkfunctionality components, wherein each of the one or more networkfunctionality components is decomposed into multiple service types;identify, by the core network, a plurality of service instances fordeployment to accomplish the task, wherein each of the plurality ofservice instances belongs to one of the multiple decomposed servicetypes; and deploy, by the core network, the plurality of serviceinstances to one or more server machines of the core network accordingto a schedule based on resource requirements of the service instancesand current resource availability of the one or more server machines.12. The media of claim 11, wherein the software is further operable whenexecuted to: form one or more pipelines, wherein the one or morepipelines comprise the sequence of the plurality of service instances.13. The media of claim 12, wherein the software is further operable whenexecuted to: hash one or more fields of an encapsulation header of anencapsulation protocol for determining which of the one or more servermachines are deployed.
 14. The media of claim 12, wherein the softwareis further operable when executed to form a message pipeline.
 15. Themedia of claim 11, wherein the one or more network functionalitycomponents are decomposed into multiple service types by aservice-oriented decomposing.
 16. The media of claim 11, wherein thesoftware is further operable when executed to: schedule, by the corenetwork, the plurality of service instances for deployment to accomplishthe task.
 17. The media of claim 16, wherein the software is furtheroperable when executed to reschedule the plurality of service instances.18. The media of claim 11, wherein the software is further operable whenexecuted to: update one or more of the multiple decomposed service typesor adding one or more new service types.
 19. The media of claim 11,wherein the software is further operable when executed to: scale acapacity of the core network by network dimensioning, wherein thenetwork dimensioning includes dynamically adjusting a number of theplurality of service instances or consolidating the servicer machinesbeing deployed with respect to a network load.
 20. A system comprising:one or more processors; and a memory coupled to the processorscomprising instructions executable by the processors, the processorsbeing operable when executing the instructions to: receive, by a corenetwork, from a user device via an access point, a request to perform atask, wherein the core network comprises one or more networkfunctionality components, wherein each of the one or more networkfunctionality components is decomposed into multiple service types;identify, by the core network, a plurality of service instances fordeployment to accomplish the task, wherein each of the plurality ofservice instances belongs to one of the multiple decomposed servicetypes; and deploy, by the core network, the plurality of serviceinstances to one or more server machines of the core network accordingto a schedule based on resource requirements of the service instancesand current resource availability of the one or more server machines.